iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

大家好,我是Karin。今天要來學習的內容是JavaScript中物件的深拷貝方法。

學習內容來自:彭彭的教學影片
https://www.youtube.com/watch?v=tnT-XbrOKA0&list=PL-g0fdC5RMbqW54tWQPIVbhyl_Ky6a2VI&index=33&t=394s


物件的深拷貝

深拷貝的方法可以完全拷貝物件底下所有層次的資料。

深拷貝的方法

使用JSON方法將物件字串化(Serialze)

JSON.stringify()

再根據字串化的資料重新整理、建立物件結構,完成深拷貝

JSON.parse();

JSON方法的限制

JSON方法無法拷貝"不能字串化(Serialze)的資料"。
也就是無法拷貝物件底下的函式、Symbol等資料。

在JavaScript中,Symbol是一個獨一無二的值,它通常用來作為物件的屬性名稱,以避免和其他屬性名稱衝突。

範例

let a=[1,2,{x:5,y:7}];
let newA=JSON.prase(JSON.stringify(a)); //完成深拷貝

//證明第二層的資料也會被真正的拷貝
newA[2].x=3;
console.log(a[2].x);

執行顯示結果為5,表示第二層的資料有被真正的拷貝,原本a物件中的值未被更動。


上一篇
Day 22 物件的淺拷貝
下一篇
Day 24 Git 版本控制-1
系列文
每天都進步一點!從零開始的JavaScript 與基礎網路知識學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言